PHP的Curl库用于获取网络上的资源,就像模拟平时打开浏览器那样,使用它可以方便的抓取到网页上的信息,同时,这个库也提供了多种设置,能够设置各种HTTP协议中的参数.使用CURL,你可以完全模拟用户在网页上登录,浏览,发送信息,写出各种脚本.
检查PHP是否加载CURL
在PHP的主配置文件 php.ini 中,确保打开了curl功能.
第一个示例
下面来使用curl抓取石博文博客的主页 http://blog.sbw.so
上面的这段代码就能够获取到一个页面的源代码,再配合PHP强大的正则表达式,就可以很方便的从页面中提取出一些数据.当然,如果在url地址后面加上参数,就可以以get方法提交参数.
以post方式提交数据
为了一次性提交大量数据,同时也为了更加保密,通常的做法是使用post方式提交数据,使用curl库,也可以很方便的模拟post方式提交.假设将要提交的数据以关联数组的形式存放在数据$data中.
上面的代码中,第一行表明了要以post方式提交数据,第二行就是一个以关联数组存放的数据对,当这个请求发出时,$data中的数据会自动的以post请求的格式发出.
设置User-Agent,Cookie与Referer
通常,一个网站记录用户的在线状态是用Cookie信息来记录的,也用User-Agent与Referer来判断来访者有没有权限读取相应信息,比如"防盗链"功能,就是验证HTTP头中的Referer信息来进行判断的.curl也提供了方法来让我们修改这些信息,方法如下:
模拟登录百度帐号
由博主编写的"百度贴吧签到系统"就广泛使用curl模拟用户登录与签到,其中的登录部分包含了curl库在平常使用中的大多数常用例子,而且,本系统是完全开源的,可以在这里(Github)看到代码.
其它函数
除了上面提到的一些常用的方法,PHP的curl库还提供了如ssl连接,文件上传(put)方法等等各种函数,可以在PHP官方的手册页面查找相关介绍: